<?php

namespace App\Admin\Controllers;

use App\Admin\Repositories\WxPageEvent;
use App\Wen\Utils\FieldUtils;
use App\Wen\Utils\GatewayUtils;
use App\Wen\Utils\Settings;
use App\Wen\Utils\SiteUtils;
use Dcat\Admin\Form;
use Dcat\Admin\Grid;
use Dcat\Admin\Show;
use Dcat\Admin\Http\Controllers\AdminController;

class WxPageEventController extends AdminController
{
    protected $scene_arr = [
        1 => '1. 首页',
        2 => '2. 好物',
        3 => '3. 发布',
        4 => '4. 消息',
        5 => '5. 我',
        6 => '6. 圈子页(可配id)',
        7 => '7. 话题页(可配id)',
        8 => '8. 用户页(可配id)',
        9 => '9. 笔记详情页(可配id)',
        10 => '10. 全局搜索页',
        12 => '12. 商品详情页(可配id)',
        15 => '15. 聊天详情',
        16 => '16. 更新资料页',
        17 => '17. 新建圈子页',
        18 => '18. 举报',
        19 => '19. 发现-圈子',
        21 => '21. 发布选择商品',
        22 => '22. 发布选择圈子',
        23 => '23. 发布选择话题',
        24 => '24. 钱包',
        25 => '25. 圈主圈子列表',
        26 => '26. 余额充值',
        27 => '27. 管理页',
        28 => '28. 关于页面',
        29 => '29. 地址页',
        30 => '30. 注销账号页',
        31 => '31. 开通会员页',
        32 => '32. 订单页',
        33 => '33. 签到任务页',
        34 => '34. 物流页',
        36 => '36. 购物车',
        37 => '37. web-view',
        38 => '38. 实时热帖榜',
        39 => '39. 热门话题瀑布流页',
        40 => '40. 提交反馈页',
        41 => '41. 反馈详情页',
        42 => '42. 帮助与反馈首页',
        43 => '43. 我的反馈列表',
        44 => '44. 帮助问题详情',
        45 => '45. 确认订单页面',
        46 => '46. 设置页',
        47 => '47. 我的二维码',
        48 => '48. 配置支付密码',
        49 => '49. 全站图片一览页',
        50 => '50. /pages/circleClass/circleClass',
        51 => '51. 我的推广',
        52 => '52. 协议页',
        53 => '53. /pages/tags/list',
        54 => '54. 我的订单',
        55 => '55. /pagesA/mine/users/users',
        56 => '56. 马甲',
        57 => '57. 图集首页',
        58 => '58. 图集详情',
        59 => '59. 我的收藏图集',
        60 => '60. pagesB/playbill/userPoster',
        61 => '61. pagesB/playbill/circleShare',
        62 => '62. pagesB/playbill/goodsPoster',
        63 => '63. pagesB/playbill/playbill',
        64 => '64. pagesB/menus/menus',
        65 => '65. 活动',
        66 => '66. 消息-通知页面',
        67 => '67. 消息-喜欢和收藏',
        68 => '68. 消息-评论',
        69 => '69. 支付方式选择页',
        70 => '70. 支付成功',
        71 => '71. pc-login',
        72 => '72. 图片详情页',
        73 => '73. 帮助问题某个分类页',
        74 => '74. 商品笔记列表页',
        75 => '75. 视频滑动',
        76 => '76. 输入手机号',
        77 => '77. 屏蔽设置',
        78 => '78. 我拉黑的用户',
        79 => '79. 我不喜欢的用户',
        80 => '80. 我不喜欢的笔记',
        81 => '81. 群二维码滑动',
        82 => '82. 前端主题切换',
        83 => '83. 选择我的学校',
        84 => '84. 笔记推广页',
        85 => '85. 笔记小海报',
        86 => '86. 商品筛选list',
        87 => '87. 商品所有分类',
        88 => '88. 店铺',
        89 => '89. 隐私设置',
        90 => '90. 隐私设置-收藏',
        91 => '91. 隐私设置-个性化选项',
        92 => '92. 隐私设置-程序化广告',
        93 => '93. 隐私设置-关注与粉丝列表',
        94 => '94. 隐私设置-推荐可能认识的人',
        95 => '95. 界面自定义',
        96 => '96. 店铺入驻申请',
        97 => '97. 发布弹窗页2',
        98 => '98. 二手发布',
        99 => '99. 二手详情',
        100 => '100. 二手商城',
        101 => '101. 我的卖出',
        102 => '102. 商品发货',
        103 => '103. 自提-用户端',
        104 => '104. 二手商品搜索',
        105 => '105. 二手-我发布的',
        106 => '106. 笔记编辑器2',
        107 => '107. 实名认证',
        108 => '108. 保证金充值',
        109 => '109. 激励视频汇总页',
        110 => '110. 激励排行榜',
        111 => '111. 全站排行榜',
        112 => '112. 抽奖',
        113 => '113. 头条界面',
        114 => '114. 店铺资质页',
        115 => '115. 本地服务首页',
        116 => '116. 本地服务-租房详情',
        117 => '117. 本地服务-找工作详情',
        118 => '118. 本地服务-待定',
        119 => '119. 本地服务-发布',
        120 => '120. Ta的闲置（三方视角）',
        121 => '121. 历史浏览',
        122 => '122. 自定义认证',
        123 => '123. 选票-xxx',
        124 => '124. 选票-列表',
        125 => '125. 选票-模板中心',
        126 => '126. 选票-发布',
        127 => '127. 选票-选手详情',
        128 => '128. 选票-详情',
        129 => '129. 选票-报名页面',
        130 => '130. 选票-首页',
        131 => '131. 课表',
        132 => '132. 商户-经营地址',
        133 => '133. 学校认证-选择学校',
        134 => '134. 学校认证-同意协议',
        135 => '135. 学校认证-认证方式',
        136 => '136. 学校认证-学校邮箱认证',
        137 => '137. 学校认证-校园身份证明',
        138 => '138. 课表-课程-详情',
        139 => '139. 漫展（其实是商品）',
        140 => '140. 全局共用上传视频页',
        141 => '141. 公共视频播放',
        142 => '142. 图标发现页',
        143 => '143. 第三方账号绑定页',
        144 => '144. 组局-俱乐部入驻',
        145 => '145. 组局-发布活动',
        146 => '146. 组局-用户信息填写',
        147 => '147. 组局-首页',
        148 => '148. 组局-详情',
        149 => '149. 组局-确认订单页',
        150 => '150. 组局-我的组局',
        151 => '151. 组局-影集列表',
        152 => '152. 组局-影集详情',
        153 => '153. 图集-发布',
        154 => '154. 组局-俱乐部主页',
        155 => '155. 全局-table展示',
        156 => '156. 全局-城市选择',
        157 => '157. tab-组局首页',
        158 => '158. 组局-俱乐部设置页',
        159 => '159. 钱包-提现申请',
        160 => '160. 钱包-提现详情',
        161 => '161. 钱包-提现记录',
        162 => '162. 钱包-账单（余额-金币）',
        163 => '163. 用户自助解封-封号-禁言',
        164 => '164. 隐私设置-联系方式',
        165 => '165. tabbar-同城',
        166 => '166. 设置-青少年模式开启说明',
        167 => '167. 设置-青少年模式输入密码',
        168 => '168. 设置-青少年模式-找回密码',
        169 => '169. 设置-青少年模式-待定',
        170 => '170. 设置-青少年模式-待定',
        171 => '171. 分享裂变-邀请-推广码绑定',
        172 => '172. 分享裂变-邀请-层级与即时奖励',
        173 => '173. 分享裂变-邀请-新用户奖励扫码测试'
    ];
    /**
     * Make a grid builder.
     *
     * @return Grid
     */
    protected function grid()
    {
        return Grid::make(new WxPageEvent(), function (Grid $grid) {
            $grid->column('id')->sortable();
            $grid->column('scene')->using($this->scene_arr);
            $grid->column('scene_id');
            $grid->column('target_type')->using(FieldUtils::getUrlTypes());
            $grid->column('target_id');

            $grid->column('interval');

            $grid->filter(function (Grid\Filter $filter) {
                $filter->equal('id');

            });
        });
    }

    /**
     * Make a show builder.
     *
     * @param mixed $id
     *
     * @return Show
     */
    protected function detail($id)
    {
        return Show::make($id, new WxPageEvent(), function (Show $show) {
            $show->field('id');
            $show->field('scene');
            $show->field('scene_id');
            $show->field('target_type');
            $show->field('target_id');
            $show->field('interval');
        });
    }

    /**
     * Make a form builder.
     *
     * @return Form
     */
    protected function form()
    {
        return Form::make(new WxPageEvent(), function (Form $form) {
            $form->display('id');
            $form->select('scene')->options($this->scene_arr)->required();
            $form->text('scene_id')->help('一般不用填，除非你需要具体某个'.env('circle_call', '圈子').'，话题，用户等');
            $form->radio('target_type')->options(FieldUtils::getUrlTypes())->default(0);
            $form->textarea('target_id')->help('<a href="https://doc.minisns.cn/doc/44/" target="_blank">路径大全</a>');
            $form->number('interval')->default(99999);
            $form->saved(function (Form $form){
                SiteUtils::forget_config_data();

                $__global_config_version__ = Settings::get('__global_config_version__', 1) + 1;
                Settings::set('__global_config_version__', $__global_config_version__);
                GatewayUtils::success('all', 13, [ 'version' => $__global_config_version__, 'file' => basename(__FILE__) ]);

            });

            $form->deleting(function (Form $form){
                global $__MINI_GLOBAL_TENANT_ID__;
                if($__MINI_GLOBAL_TENANT_ID__ > 0){
                    return $form->response()->error('权限不足，不可以删除其他分站对象');
                }
            });

        });
    }
}
